Imports System.Data.SqlClient
Public Class cls_soldaduraensayo_

    Implements ICloneable

#Region "Variables ..."
    Private int_idsoldaduraensayo As Integer = 0
    Private int_idsoldadura As Integer = 0
    Private int_idensayosubtipo As Integer = 0
    Private int_idusuariopedido As Integer = 0
    Private dte_fechapedido As DateTime = New System.DateTime(Now.Year, 1, 1)

    Private obj_ensayosubtipo As cls_ensayosubtipo_ = Nothing
    Private obj_usuariopedido As cls_usuario_ = Nothing

    Private col_Items As Collections.Generic.List(Of cls_soldaduraensayo_) = Nothing
#End Region

#Region "Propiedades ..."
    Property idsoldaduraensayo() As Integer
        Get
            idsoldaduraensayo = int_idsoldaduraensayo
        End Get
        Set(ByVal value As Integer)
            int_idsoldaduraensayo = value
        End Set
    End Property
    Property idsoldadura() As Integer
        Get
            idsoldadura = int_idsoldadura
        End Get
        Set(ByVal value As Integer)
            int_idsoldadura = value
        End Set
    End Property
    Property idensayosubtipo() As Integer
        Get
            idensayosubtipo = int_idensayosubtipo
        End Get
        Set(ByVal value As Integer)
            int_idensayosubtipo = value
        End Set
    End Property
    Property idusuariopedido() As Integer
        Get
            idusuariopedido = int_idusuariopedido
        End Get
        Set(ByVal value As Integer)
            int_idusuariopedido = value
        End Set
    End Property
    Property fechapedido() As DateTime
        Get
            fechapedido = dte_fechapedido
        End Get
        Set(ByVal value As DateTime)
            dte_fechapedido = value
        End Set
    End Property

    Property Items() As Collections.Generic.List(Of cls_soldaduraensayo_)
        Get
            Items = col_Items
        End Get
        Set(ByVal value As Collections.Generic.List(Of cls_soldaduraensayo_))
            col_Items = value
        End Set
    End Property
    Property ensayosubtipo() As cls_ensayosubtipo_
        Get
            If IsNothing(obj_ensayosubtipo) Then
                obj_ensayosubtipo = New cls_ensayosubtipo_
                If Not obj_ensayosubtipo.Buscar(idensayosubtipo) Then
                    obj_ensayosubtipo = Nothing
                End If
            End If
            ensayosubtipo = obj_ensayosubtipo
        End Get
        Set(ByVal value As cls_ensayosubtipo_)
            obj_ensayosubtipo = value
        End Set
    End Property

    Property usuariopedido() As cls_usuario_
        Get
            If IsNothing(obj_usuariopedido) Then
                obj_usuariopedido = New cls_usuario_
                If Not obj_usuariopedido.Buscar(idusuariopedido) Then
                    obj_usuariopedido = Nothing
                End If
            End If
            usuariopedido = obj_usuariopedido
        End Get
        Set(ByVal value As cls_usuario_)
            obj_usuariopedido = value
        End Set
    End Property

#End Region

    Private Sub CargarColeccion(ByVal obj_Reader As SqlDataReader)
        col_Items = New Collections.Generic.List(Of cls_soldaduraensayo_)
        While obj_Reader.Read()
            Dim Elemento As New cls_soldaduraensayo_
            Elemento.int_idsoldaduraensayo = (obj_Reader.GetValue(obj_Reader.GetOrdinal("idsoldaduraensayo")))

            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("idsoldadura"))) = False Then
                Elemento.int_idsoldadura = (obj_Reader.GetValue(obj_Reader.GetOrdinal("idsoldadura")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("idensayosubtipo"))) = False Then
                Elemento.int_idensayosubtipo = (obj_Reader.GetValue(obj_Reader.GetOrdinal("idensayosubtipo")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("idusuariopedido"))) = False Then
                Elemento.int_idusuariopedido = (obj_Reader.GetValue(obj_Reader.GetOrdinal("idusuariopedido")))
            End If
            If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("fechapedido"))) = False Then
                Elemento.dte_fechapedido = (obj_Reader.GetValue(obj_Reader.GetOrdinal("fechapedido")))
            End If
            col_Items.Add(Elemento)
        End While
    End Sub

    Private Sub CargarVariables(ByVal obj_Reader As SqlDataReader)
        obj_Reader.Read()
        int_idsoldaduraensayo = (obj_Reader.GetValue(obj_Reader.GetOrdinal("idsoldaduraensayo")))

        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("idsoldadura"))) = False Then
            int_idsoldadura = (obj_Reader.GetValue(obj_Reader.GetOrdinal("idsoldadura")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("idensayosubtipo"))) = False Then
            int_idensayosubtipo = (obj_Reader.GetValue(obj_Reader.GetOrdinal("idensayosubtipo")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("idusuariopedido"))) = False Then
            int_idusuariopedido = (obj_Reader.GetValue(obj_Reader.GetOrdinal("idusuariopedido")))
        End If
        If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("fechapedido"))) = False Then
            dte_fechapedido = (obj_Reader.GetValue(obj_Reader.GetOrdinal("fechapedido")))
        End If
    End Sub

    Public Sub Nuevo(Optional ByVal ObtenerID As Boolean = False)
        Dim obj_Conexion As New cls_Conexion
        Try

            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "soldaduraensayo__Nuevo"
                .Parameters.Add("@idsoldadura", SqlDbType.int).Value = int_idsoldadura
                .Parameters.Add("@idensayosubtipo", SqlDbType.int).Value = int_idensayosubtipo
                .Parameters.Add("@idusuariopedido", SqlDbType.int).Value = int_idusuariopedido
                .Parameters.Add("@fechapedido", SqlDbType.datetime).Value = dte_fechapedido
                .ExecuteNonQuery()
            End With
            If ObtenerID Then
                CargarUltimo()
            End If
        Catch ex As SqlClient.SqlException
            MessageBox.Show("Error al Crear el registro de soldaduraensayo_." & Chr(13) & _
            "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
            "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
            "Descripción: " & ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
        End Try
    End Sub

    Public Sub Modificar()
        Dim obj_Conexion As New cls_Conexion
        Try

            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "soldaduraensayo__Modificar"
                .Parameters.Add("@idsoldaduraensayo", SqlDbType.int).Value = int_idsoldaduraensayo
                .Parameters.Add("@idsoldadura", SqlDbType.int).Value = int_idsoldadura
                .Parameters.Add("@idensayosubtipo", SqlDbType.int).Value = int_idensayosubtipo
                .Parameters.Add("@idusuariopedido", SqlDbType.int).Value = int_idusuariopedido
                .Parameters.Add("@fechapedido", SqlDbType.datetime).Value = dte_fechapedido
                .ExecuteNonQuery()
            End With
        Catch ex As SqlClient.SqlException
            MessageBox.Show("Error al Modificar el registro de soldaduraensayo_." & Chr(13) & _
            "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
            "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
            "Descripción: " & ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
        End Try
    End Sub

    Public Sub Eliminar(ByVal idsoldaduraensayo As Integer)
        Dim obj_Conexion As New cls_Conexion
        Try
            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "soldaduraensayo__Eliminar"
                .Parameters.Add("@idsoldaduraensayo", SqlDbType.int).Value = idsoldaduraensayo
                .ExecuteNonQuery()
            End With
        Catch ex As SqlClient.SqlException
            MessageBox.Show("Error al Eliminar el registro de soldaduraensayo_." & Chr(13) & _
            "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
            "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
            "Descripción: " & ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
        End Try
    End Sub

    Public Function Buscar(ByVal idsoldaduraensayo As Integer) As Boolean
        Dim obj_Conexion As New cls_Conexion
        Dim obj_Reader As SqlDataReader
        Try
            Buscar = False
            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "soldaduraensayo__Buscar"
                .Parameters.Add("@idsoldaduraensayo", SqlDbType.int).Value = idsoldaduraensayo
            End With
            obj_Reader = obj_Conexion.obj_SqlCommand.ExecuteReader
            If obj_Reader.HasRows Then
                CargarVariables(obj_Reader)
                Buscar = True
            End If
        Catch ex As SqlClient.SqlException
            MessageBox.Show("Error al Buscar el registro de soldaduraensayo_." & Chr(13) & _
            "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
            "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
            "Descripción: " & ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
            obj_Reader = Nothing
        End Try
    End Function

    Public Sub CargarUltimo()
        Dim obj_Conexion As New cls_Conexion
        Dim obj_Reader As SqlDataReader
        Try
            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "soldaduraensayo__CargarUltimo"
            End With
            obj_Reader = obj_Conexion.obj_SqlCommand.ExecuteReader
            If obj_Reader.HasRows Then
                CargarVariables(obj_Reader)
            End If
        Catch ex As SqlClient.SqlException
            MessageBox.Show("Error al CargarUltimo registro de soldaduraensayo_." & Chr(13) & _
            "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
            "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
            "Descripción: " & ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
            obj_Reader = Nothing
        End Try
    End Sub

    Public Function CargarTodos() As Boolean
        Dim obj_Conexion As New cls_Conexion
        Dim obj_Reader As SqlDataReader
        Try
            CargarTodos = False
            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "soldaduraensayo__CargarTodos"
            End With
            obj_Reader = obj_Conexion.obj_SqlCommand.ExecuteReader
            If obj_Reader.HasRows Then
                CargarColeccion(obj_Reader)
                CargarTodos = True
            End If
        Catch ex As SqlClient.SqlException
            MessageBox.Show("Error al CargarTodos los registros de soldaduraensayo_." & Chr(13) & _
            "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
            "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
            "Descripción: " & ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
            obj_Reader = Nothing
        End Try
    End Function

    Public Function CargarXidsoldadura(ByVal prm_idsoldadura As Integer) As Boolean
        Dim obj_Conexion As New cls_Conexion
        Dim obj_Reader As SqlDataReader
        Try
            CargarXidsoldadura = False
            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "soldaduraensayo__CargarXidsoldadura"
                .Parameters.Add("@idsoldadura", SqlDbType.Int).Value = prm_idsoldadura
            End With
            obj_Reader = obj_Conexion.obj_SqlCommand.ExecuteReader
            If obj_Reader.HasRows Then
                CargarColeccion(obj_Reader)
                CargarXidsoldadura = True
            End If
        Catch ex As SqlClient.SqlException
            MessageBox.Show("Error al CargarXidsoldadura los registros de soldaduraensayo_." & Chr(13) & _
            "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
            "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
            "Descripción: " & ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
            obj_Reader = Nothing
        End Try
    End Function
    Public Function Clone() As Object Implements System.ICloneable.Clone
        Dim obj_soldaduraensayo_Clon As New cls_soldaduraensayo_
        obj_soldaduraensayo_Clon.int_idsoldaduraensayo = Me.int_idsoldaduraensayo
        obj_soldaduraensayo_Clon.int_idsoldadura = Me.int_idsoldadura
        obj_soldaduraensayo_Clon.int_idensayosubtipo = Me.int_idensayosubtipo
        obj_soldaduraensayo_Clon.int_idusuariopedido = Me.int_idusuariopedido
        obj_soldaduraensayo_Clon.dte_fechapedido = Me.dte_fechapedido
        obj_soldaduraensayo_Clon.col_Items = Me.col_Items
        Return obj_soldaduraensayo_Clon
    End Function

End Class
